Skip to main content
Glama
ayupow

LNR-server-02-cascading-failure-scenario-simulatio

simulate_failure_scenario_using_FMEA_analysis.py3.64 kB
import json import networkx as nx def simulate_failure_scenario_using_FMEA_analysis(main_json_path): main_json_path = main_json_path.strip().replace('"', '') output_json_path = 'cascading_failure_of_FMEA_analysis_results.json' failure_modes_json_path = 'identified_failure_modes.json' # 读取包含各个文件路径的 JSON 文件 with open(main_json_path, 'r') as f: file_paths = json.load(f) # 根据路径读取 interdependent_infrastructure_networks_with_cascading_information 和 failure_modes with open(file_paths['interdependent_infrastructure_networks_with_cascading_information'], 'r') as f: network_data = json.load(f) with open(file_paths['failure_modes_extended'], 'r') as f: failure_modes = json.load(f) # 创建有向图 G = nx.DiGraph() # 添加节点,并将基础设施类型、状态、容量和最后维护时间作为属性 for node in network_data['nodes']: G.add_node(node['Code'], layer=node['Infrastructure Type'], status=node['Status'], # 新增字段 capacity=node['Capacity'], # 新增字段 last_maintenance=node['Last Maintenance']) # 新增字段 # 添加边,并包含状态和容量 for edge in network_data['edges']: G.add_edge(edge['Start'], edge['End'], infrastructure_type=edge['Infrastructure Type'], status=edge.get('Status', 'operational'), # 新增字段,默认为 'operational' capacity=edge.get('Capacity', 1000)) # 新增字段,默认为 1000 # 初始化故障模式识别结果 identified_modes = [] # 逐个评估故障模式 for mode in failure_modes['modes']: affected_nodes = [] # 检查与该故障模式相关的节点 for node in G.nodes(): if mode['criteria'] in G.nodes[node]['layer']: # 根据具体标准识别受影响节点 affected_nodes.append(node) # 记录识别的故障模式和受影响节点 if affected_nodes: identified_modes.append({ 'mode': mode['description'], 'affected_nodes': affected_nodes, 'severity': mode['severity'], # 新增字段 'occurrence': mode['occurrence'], # 新增字段 'detection': mode['detection'], # 新增字段 'mitigation_strategy': mode['mitigation_strategy'], # 新增字段 'recovery_actions': mode['recovery_actions'], # 新增字段 'cost_implications': mode['cost_implications'], # 新增字段 'responsible_party': mode['responsible_party'] # 新增字段 }) # 保存识别的故障模式到 identified_failure_modes.json 文件 with open(failure_modes_json_path, 'w') as f: json.dump({"identified_failure_modes": identified_modes}, f, indent=4) # 保存 FMEA 分析结果到输出文件 with open(output_json_path, 'w') as f: json.dump({"fmea_results": identified_modes}, f, indent=4) # 更新 Global_Data.json 文件,写入新的路径 file_paths['cascading_failure_of_FMEA_analysis_results'] = output_json_path file_paths['identified_failure_modes'] = failure_modes_json_path with open(main_json_path, 'w') as f: json.dump(file_paths, f, indent=4) return "The cascading failure identification by FMEA results and identified failure modes have been saved in Global_Data.json"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ayupow/LNR-server-02-cascading-failure-scenario-simulatio'

If you have feedback or need assistance with the MCP directory API, please join our Discord server